উদাহরণ সহ RestTemplate ব্যবহার

Java Technologies - স্প্রিং বুট ক্লায়েন্ট (Spring Boot Client) - RestTemplate এর পরিচিতি
146

নিচে স্প্রিং বুট ক্লায়েন্টে (Spring Boot Client) RestTemplate ব্যবহার করে একটি উদাহরণ দেখানো হয়েছে:


১. প্রজেক্ট তৈরি করুন

Spring Initializr-এ যান এবং Spring Boot Starter Web ডিপেনডেন্সি যুক্ত করে একটি নতুন প্রজেক্ট তৈরি করুন। এরপরে প্রজেক্টে RestTemplate ব্যবহার করা হবে।


২. pom.xml ডিপেনডেন্সি যুক্ত করুন

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

৩. RestTemplate কনফিগারেশন

RestTemplate ব্যবহারের জন্য একটি @Bean কনফিগারেশন তৈরি করুন।

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class AppConfig {
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

৪. RestTemplate ব্যবহার করে ক্লায়েন্ট ক্লাস তৈরি করুন

import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

@Service
public class ApiClient {
    private final RestTemplate restTemplate;

    public ApiClient(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }

    // GET রিকোয়েস্ট
    public String getData(String url) {
        return restTemplate.getForObject(url, String.class);
    }

    // POST রিকোয়েস্ট
    public String postData(String url, Object requestBody) {
        return restTemplate.postForObject(url, requestBody, String.class);
    }
}

৫. Controller ক্লাস

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ClientController {
    private final ApiClient apiClient;

    public ClientController(ApiClient apiClient) {
        this.apiClient = apiClient;
    }

    // GET রিকোয়েস্ট
    @GetMapping("/fetch-data")
    public String fetchData() {
        String url = "https://jsonplaceholder.typicode.com/posts/1"; // উদাহরণ API URL
        return apiClient.getData(url);
    }

    // POST রিকোয়েস্ট
    @PostMapping("/send-data")
    public String sendData(@RequestBody Object requestBody) {
        String url = "https://jsonplaceholder.typicode.com/posts"; // উদাহরণ API URL
        return apiClient.postData(url, requestBody);
    }
}

৬. GET এবং POST রিকোয়েস্ট টেস্ট করুন

GET রিকোয়েস্ট টেস্ট:

  • API Endpoint: http://localhost:8080/fetch-data
  • এটি https://jsonplaceholder.typicode.com/posts/1 থেকে ডেটা রিট্রিভ করবে।

POST রিকোয়েস্ট টেস্ট:

  • API Endpoint: http://localhost:8080/send-data
  • Request Body (JSON):

    {
        "title": "foo",
        "body": "bar",
        "userId": 1
    }
    
  • এটি https://jsonplaceholder.typicode.com/posts API-তে POST করবে এবং রেসপন্স ফিরিয়ে দেবে।

৭. Error Handling

RestTemplate ব্যবহার করার সময় try-catch ব্লক দিয়ে এক্সসেপশন হ্যান্ডেল করুন:

public String getData(String url) {
    try {
        return restTemplate.getForObject(url, String.class);
    } catch (Exception e) {
        return "Error occurred: " + e.getMessage();
    }
}

৮. উদাহরণ রেসপন্স

GET রেসপন্স:

{
    "userId": 1,
    "id": 1,
    "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
    "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}

POST রেসপন্স:

{
    "id": 101,
    "title": "foo",
    "body": "bar",
    "userId": 1
}

RestTemplate ব্যবহার করার সুবিধা:

  1. সহজ ও ব্যবহারবান্ধব।
  2. স্প্রিং বুটে আগে থেকেই অন্তর্ভুক্ত।
  3. GET, POST, PUT, DELETE ইত্যাদি HTTP মেথড সমর্থন করে।

তবে, নতুন প্রোজেক্টে স্প্রিং বুট ২.৪+ এ WebClient ব্যবহার করাই সুপারিশ করা হয়। RestTemplate মূলত blocking এবং synchronous কাজ করে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...